在阿里云上,您可以通过人工智能平台PAI快速部署一个大模型RAG对话系统。通过AppFlow的集成,您可以将该对话系统集成到钉钉群聊或微信等各种场景中,让您随时随地使用您的专属机器人。本文将以钉钉群聊场景为例,为您介绍PAI RAG+AppFlow的部署方案。
方案概览
以基于开源项目EasyRec的知识库文档搭建钉钉答疑机器人为例,介绍PAI RAG+AppFlow的部署方案。方案只需以下几步:
|
1. 部署PAI RAG应用
首先您需要部署一个大模型RAG对话应用,用于实现AI助手。具体操作步骤如下:
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击部署服务,然后在场景化模型部署区域,单击大模型RAG对话系统部署。
在部署大模型RAG对话系统页面,配置以下关键参数。
基本信息
参数
描述
服务名称
自定义服务名称,例如pai_rag_test1。
模型来源
本方案选择开源公共模型。
您也可以选择自持微调模型,但需提前准备好您的私有模型。通过分布式训练(DLC)完成模型训练后,您可以将模型训练结果导入阿里云对象存储OSS或文件存储NAS中,详情请参见在DLC训练任务中使用云存储。
模型类别
本方案选择Qwen1.5-1.8b。
资源配置
资源配置选择:选择模型类别后,系统会自动推荐适合的资源规格,无需您进行配置。如果更换至其他资源规格,可能会导致模型服务启动失败。
向量检索库设置
RAG支持通过Faiss(Facebook AI Similarity Search)、阿里云Elasticsearch、Milvus、Hologres、OpenSearch-向量检索版或RDS PostgreSQL构建向量检索库。本方案以FAISS为例,参数配置说明如下。您也可以选择使用其他向量检索库,如何准备向量检索库以及相关配置项,请参见向量检索库设置。
参数
描述
版本类型
选择FAISS。
OSS地址
选择当前地域下已创建的OSS存储路径,用来存储上传的知识库文件。如果没有可选的存储路径,您可以参考控制台快速入门进行创建。
说明如果您选择使用自持微调模型部署服务,请确保所选的OSS存储路径不与自持微调模型所在的路径重复,以避免造成冲突。
参数配置完成后,单击部署。
查看PAI RAG应用服务Token。
在模型在线服务(EAS)页面,单击目标服务名称。
在基本信息区域单击查看调用信息,并在调用信息对话框的公网地址调用页签,获取Token。
2. 创建钉钉应用
接下来,您需要按照以下操作步骤在您的组织中创建钉钉应用,作为AI助手回答用户问题。
创建钉钉应用需要您的钉钉账号有开发者权限。您可以联系您的组织管理员获取钉钉开放平台的开发权限,具体操作请参见获取开发者权限。
2.1 创建应用
访问钉钉开放平台,单击创建。如果创建过应用未展示应用开发指引,请单击立即开始进入钉钉应用页面。
在应用开发的左侧导航栏中,单击钉钉应用,在钉钉应用页面右上角单击创建应用。
在创建应用面板,填写应用名称和应用描述,上传应用图标,完成后单击保存。
2.2 查看应用Client ID和Client Secret
在左侧导航栏选择凭证与基础信息,复制Client ID和Client Secret,用于下一步创建连接流。
2.3 创建消息卡片
钉钉机器人通过卡片消息支持流式返回结果,您需要创建卡片模板供消息发送使用。
访问卡片平台,单击新建模板。
在创建模板输入框,填入模板信息。
在模拟编辑页面,保存并发布模板。然后单击返回模板列表页面。
复制模板ID,用于创建钉钉连接流时使用。
2.4 授予应用发送卡片消息权限
创建卡片后,您需要给应用授予发送卡片消息的权限。
访问钉钉应用列表。找到上述已创建的应用,单击应用名称进入详情页面。
在左侧导航栏选择
,在左侧搜索框分别输入Card.Streaming.Write
和Card.Instance.Write
,并在操作列单击申请权限。
3. 创建AppFlow连接流
AppFlow可以让您在不写代码的情况下,通过界面配置就可以将PAI RAG应用和钉钉连接起来。您可以通过预置的AppFlow模板创建一个钉钉机器人连接流。
使用AppFlow模板创建连接流,单击立即使用进入创建流程。
在连接流的账户授权配置向导页,选择凭证并单击下一步。
为大模型RAG对话应用选择凭证:
单击前往授权,在创建凭证对话框中,填入您之前获取的PAI RAG应用服务Token,并设置一个凭证名称。
为钉钉应用机器人选择凭证:
单击前往授权,在创建凭证对话框中,填入您之前获取的钉钉应用的Client ID和Client Secret,并设置一个凭证名称。
在执行动作配置向导页,填写PAI RAG应用服务所在的region、workspaceId以及服务名称,并配置模板ID,参数配置完成后单击下一步。
在基本信息配置向导页,填写连接流名称和连接流描述(建议保持默认),完成后单击下一步。
界面提示流程配置成功,复制WebhookUrl,并单击发布。
4. 配置钉钉机器人
有了webhook地址后,接下来您可以在钉钉应用中配置机器人来回答用户问题。
4.1配置钉钉机器人
访问钉钉应用列表。找到刚刚创建的应用,单击应用名称进入详情页面。
在添加应用能力页面,找到机器人卡片,单击添加。
在机器人配置页面,打开机器人配置开关,您可以参考下图完成配置。消息接收模式请选择HTTP模式,消息接收地址填写上述已获取的WebhookUrl。然后单击发布。
重要消息接收模式请选择HTTP模式,目前AppFlow仅支持HTTP模式,选择Stream模式会导致无法返回消息。
4.2发布应用版本
应用创建完成后,如果需要将应用供企业内其他用户使用,需要发布一个版本。
在左侧导航栏,选择
,然后在版本管理与发布页面,单击创建新版本。在版本详情页面,输入应用版本号和版本描述,并选择合适的应用可用范围,然后单击保存,并在弹框中单击直接发布。
4.3测试机器人
您可以创建群聊或在已有群聊中添加机器人,并与机器人进行对话,体验其功能效果。
在钉钉群管理中添加机器人。
进入钉钉群群设置页面,单击机器人卡片区域,然后在机器人管理页面,单击添加机器人。
在机器人对话框的搜索文本框中输入您刚刚创建的机器人名称,并选中要添加的机器人。然后单击添加,完成后再单击完成添加。
在钉钉群中@机器人,进行交流互动。
5. 为PAI RAG应用增加私有知识
以上传开源项目EasyRec的知识库文档为例,当您提出与EasyRec相关的问题时,能够获得更准确的回答。
登录PAI控制台,在页面上方选择目标地域,并在右侧选择目标工作空间,然后单击进入EAS。
在模型在线服务(EAS)页面,单击目标服务的服务方式列下的查看Web应用。
在Upload页签,上传知识库文件。例如source.zip,解压后通过Directory上传。
您可以在钉钉群中发送与EasyRec相关的问题,来检验机器人回答效果。